package com.sprouting.ops.model;

import com.sprouting.ops.annotations.invoke.CheckIsNullOrEmpty;
import com.sprouting.ops.annotations.invoke.CheckNotNull;
import com.sprouting.ops.interfaces.AddGroup;
import com.sprouting.ops.interfaces.UpdGroup;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;

/**
 * 部署关联信息表;(OpsDeployLink)(OPS_DEPLOY_LINK) 表实体类
 * 之前想的是，一个部署可能有多个关联环境，比如，部署了数据库，一般情况下，不可能出现开发环境部署了数据库，然后演示环境又用其他的数据库
 * 可能都是连的相同的数据库
 *
 * @author ：lx（长沙麓谷）
 * @date 创建时间：2025-06-29 22:18:44
 */
@Data
@TableName("ops_deploy_link")
public class OpsDeployLink {

    /**
     * 主键
     */
    @TableId
    @CheckNotNull(message = "非法ID", groups = UpdGroup.class)
    @CheckIsNullOrEmpty(message = "无效ID", groups = AddGroup.class)
    private String id;
    /**
     * 部署id
     * @see OpsDeploy#getId()
     */
    private String opsDeployId;
    /**
     * 所属环境id
     * @see OpsEnv#getId()
     */
    private String envId;
    /**
     * 关联的产品id-冗余
     * @see OpsEnv#getProductId()
     */
    private String productId;

}
